package com.dews.information.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dews.common.core.domain.TreeSelect;
import com.dews.common.core.page.TableDataInfo;
import com.dews.information.domain.dto.SubjectQueryDTO;
import com.dews.information.domain.dto.SubjectSaveDTO;
import com.dews.information.domain.dto.SubjectUpdateDTO;
import com.dews.information.domain.entity.Subject;

import java.util.List;

/**
 * 专业Service接口
 *
 * @author qingfeng
 * @date 2024-11-15
 */
public interface ISubjectService extends IService<Subject> {

    /**
     * 查询专业
     *
     * @param id 专业主键
     * @return 专业
     */
    public Subject selectSubjectById(Integer id);

    /**
     * 查询专业列表
     *
     * @param subjectQueryDTO 主题查询 DTO
     * @return 专业集合
     */
    public TableDataInfo selectSubjectList(SubjectQueryDTO subjectQueryDTO);

    /**
     * 新增专业Vo
     *
     * @param subject 专业
     * @return 结果
     */
    public int insertSubject(SubjectSaveDTO subjectSaveDTO);

    /**
     * 修改专业Vo
     *
     * @param subjectUpdateDTO 主题更新 DTO
     * @return 结果
     */
    public int updateSubject(SubjectUpdateDTO subjectUpdateDTO);

    /**
     * 批量删除专业
     *
     * @param ids 需要删除的专业主键集合
     * @return 结果
     */
    public int deleteSubjectByIds(List<Integer> ids);

    /**
     * 删除专业信息
     *
     * @param id 专业主键
     * @return 结果
     */
    public int deleteSubjectById(Integer id);

    /**
     * 构建学院专业树
     * @return
     */
    List<TreeSelect> getSubjectTree();
}
